if myHero.charName ~= "Urgot" or not VIP_USER then return end
	
	require "VPrediction"
	
	
	SkillQ = AutoCarry.Skills:NewSkill(false, _Q, 1000, "qu", AutoCarry.SPELL_LINEAR_COL, 0, false, false, 1600, 
	
	0.249, 44, true)
	
	function PluginOnLoad()
		
		qMaxRange,qMaxRange2, qspeed = 1000, 1200, 1600 
		eRange, eSpeed, eDelay, eWidth = 900, 1750, 275, 300
		Qdelay, Qwidth, Qrange, Qspeed,Qrange2=0.249,44,1000,1600,1200
		
		AARange = 425
		ultir1,ultir2,ultir3=550,700,850
		
		Menu = AutoCarry.PluginMenu
		Menu:addSubMenu("LaneClear options", "laneclearsub")
		Menu.laneclearsub:addParam("qPush", "Use Q to clear", SCRIPT_PARAM_ONOFF, false)
		Menu.laneclearsub:addParam("ePush", "Use E to clear", SCRIPT_PARAM_ONOFF, true)
		Menu.laneclearsub:addParam("qClearMana", "Mana manager (LaneClear)", SCRIPT_PARAM_SLICE, 20, 0, 100, 0)
		Menu.laneclearsub:addParam("emin", "number of crips to use E", SCRIPT_PARAM_SLICE, 3, 0, 10, 0)
		Menu:addParam("info", "\\Q options//", SCRIPT_PARAM_INFO, "")
		Menu:addParam("qCarry", "Use in Auto Carry Mode", SCRIPT_PARAM_ONOFF, true)
		Menu:addParam("qHarass", "Use in Mixed Mode", SCRIPT_PARAM_ONOFF, true)
		Menu:addParam("qHarassMana", "Mana manager (Mixed Mode)", SCRIPT_PARAM_SLICE, 20, 0, 100, 0)
		Menu:addParam("info", "\\E options//", SCRIPT_PARAM_INFO, "")
		Menu:addParam("eCarry", "Use in Auto Carry Mode", SCRIPT_PARAM_ONOFF, true)
		Menu:addParam("eLogicHarass", "in Mixed Mode", SCRIPT_PARAM_ONOFF, true)
		Menu:addParam("info", "\\Drawing//", SCRIPT_PARAM_INFO, "")
		Menu:addParam("qDrawRange", "Draw Q range", SCRIPT_PARAM_ONOFF, false)
		Menu:addParam("eDrawRange", "Draw E range", SCRIPT_PARAM_ONOFF, false)
		Menu:addParam("info", "\\Extra//", SCRIPT_PARAM_INFO, "")
		Menu:addParam("muramana", "Muramana - Toggle", SCRIPT_PARAM_ONOFF, true)
		tpe=TargetPredictionVIP(eRange, eSpeed*1000, eDelay/1000, eWidth)
		AutoCarry.SkillsCrosshair.range = 1200
		Recalling = false
		
		require "Prodiction"
		Prodiction = ProdictManager.GetInstance()
		ProdictionQ = Prodiction:AddProdictionObject(_Q, Qrange, Qspeed, Qdelay, Qwidth)    
		ProdictionE= Prodiction:AddProdictionObject(_E, eRange, eSpeed, eDelay/1000, 80) 
		ProdictQCol = Collision(qMaxRange, qspeed, 0.249, 44+30)
		PrintChat("<font color='#ab15d9'> > Urgot,The Master of Lines v0.03 by Paul</font>")
		
	end
	
	function PluginOnTick()
		qReady = myHero:CanUseSpell(_Q) == READY
		wReady = myHero:CanUseSpell(_W) == READY
		eReady = myHero:CanUseSpell(_E) == READY
		Target = AutoCarry.Crosshair:GetTarget()
		if Target then
			if Menu.muramana then MuramanaToggle(Target) end
			if AutoCarry.Keys.AutoCarry then
				if Menu.qCarry and qReady then
					now=GetGameTimer()
					if (GetDistance(Target)<1200)and isPoisoned(Target) then
						CastSpell(_Q, Target.x, Target.z)
					end
					--CastSpellQ(Target)
					ProdictionQ:GetPredictionCallBack(Target, CastQ)
				end
				
				if Menu.eCarry and eReady and not Target.dead then
					CastSpellE(Target)
					Etime=GetTickCount()
				end
			end
			if AutoCarry.Keys.MixedMode then
				if qReady and Menu.qHarass and myHero.mana >= (myHero.maxMana * (Menu.qHarassMana / 100)) then
					if (GetDistance(Target)<1200)and isPoisoned(Target) then
						CastSpell(_Q, Target.x, Target.z)
					end
					--CastSpellQ(Target)
					ProdictionQ:GetPredictionCallBack(Target, CastQ)
				end
				if Menu.eLogicHarass and eReady and not Target.dead then
					CastSpellE(Target)
				end
			end
		end
		if AutoCarry.MainMenu.LaneClear then
			if Menu.laneclearsub.qPush or Menu.laneclearsub.ePush then
				for _, minion in pairs(AutoCarry.EnemyMinions().objects) do
					if Menu.laneclearsub.qPush then
						if qReady and myHero.mana >= (myHero.maxMana * (Menu.laneclearsub.qClearMana / 100)) then
							if not isPoisoned(minion) then
								if GetDistance(minion) <= Qrange then
									if minion.health <= getDmg("Q", minion, myHero) and minion.health > getDmg("AD", minion, myHero) then
									 	SkillQ:Cast(minion)
									end
								end
							end
						end
					end
					if Menu.laneclearsub.ePush then
						if myHero.mana >= (myHero.maxMana * (Menu.laneclearsub.qClearMana / 100)) then
							if eReady  then
								if GetDistance(minion) <= eRange then
									local inear=0
									for _, minion2 in pairs(AutoCarry.EnemyMinions().objects) do
										if GetDistance(minion2,minion) < eWidth then
											inear=inear+1
										end
									end
									if(inear>Menu.laneclearsub.emin)
										then
										CastSpell(_E, minion.x, minion.z)
									end
								end
							end
						end
					end
				end
			end
		end
	end     
	function PluginOnDraw()
			if not myHero.dead then
			if qReady and Menu.qDrawRange then
				DrawCircle(myHero.x, myHero.y, myHero.z, Qrange, 0x008080)
				DrawCircle(myHero.x, myHero.y, myHero.z, Qrange2, 0x002090)
			end
			if eReady and Menu.eDrawRange then
				DrawCircle(myHero.x, myHero.y, myHero.z, eRange, 0x32B2B2)
			end
		end
	end
	function MuramanaToggle(target)
			if Target and Target.type == myHero.type and GetDistance(target) <= Qrange2 and not MuramanaIsActive() and (AutoCarry.MainMenu.AutoCarry or AutoCarry.MainMenu.MixedMode) then
			MuramanaOn()
			elseif not Target and MuramanaIsActive() then
			MuramanaOff()
		end
	end
function CastQ(unit, pos, spell)
	if not ProdictQCol:GetMinionCollision(myHero,pos) then
		if GetDistance(pos)< Qrange then
			CastSpell(_Q, pos.x, pos.z) 
		end
	end
end
function CastSpellE(target)
	local EPos = ProdictionE:GetPrediction(target)
	if EPos ~= nil then
		Packet('S_CAST', { spellId = _E, fromX = EPos.x, fromY = EPos.z}):send()
	end
end

function isPoisoned(target)
	for i = 1, target.buffCount, 1 do
		local tBuff = target:getBuff(i)
		if BuffIsValid(tBuff) then
			if tBuff.name:lower():find("debuf") then
				return true
			end
		end
	end
end